﻿@model PcaCaja.BOL.oVwMovimiento

@{
    var X = Html.X();
}

@(
 X.Window()
        .ID("winEditarMovimientoDiario")
        .Title(String.Format("Editar movimiento - {0} {1}{2}", Model.nombre_grupo_movimiento, Model.siglas_moneda, Model.monto))
        .Resizable(false)
        .Icon(Icon.UserAdd)
        .Layout(LayoutType.Fit)
        .Width(480)
        .Modal(true)
        .Constrain(true)
        .BodyPadding(5)
        .Items(
            //Necesarios para seleccionar el grupo y subgrupo una ves terminada la carga de los combos
            X.Hidden().ID("grupoId").Value(Model.grupo_movimiento_id),
            X.Hidden().ID("subGrupoId").Value(Model.subgrupo_movimiento_id),
            X.FormPanel()
                .ID("formEditarMovimientoDiario")
                .Layout(LayoutType.Form)
                .BodyPadding(5)
                .FieldDefaults(fieldDefaults => { fieldDefaults.LabelWidth = 130; })
                .Items(
                    X.HiddenFor(m => m.movimiento_id),
                    X.DateFieldFor(m => m.fecha)
                        .ReadOnly(true),
                    X.ComboBoxFor(m => m.tipo_movimiento_id)
                        .QueryMode(DataLoadMode.Local)
                        .ForceSelection(true)
                        .DisplayField("nombre")
                        .ValueField("tipo_movimiento_id")
                        .EmptyText("Seleccione...")
                        .Listeners(ls =>
                            ls.Select.Handler = @"App.grupo_movimiento_id.clearValue();
                                                  App.grupo_movimiento_id.getStore().load();
                                                  App.subgrupo_movimiento_id.clearValue();
                                                  App.subgrupo_movimiento_id.getStore().load();"
                            )
                        .Store(
                            X.StoreFor(typeof(PcaCaja.BOL.oTipoMovimiento))
                                .AutoLoad(true)
                                .Proxy(
                                    X.AjaxProxy()
                                        .Url(Url.Action("GetList", "TipoMovimiento"))
                                        .Reader(X.JsonReader().RootProperty("data"))
                                )
                                .Listeners(l =>
                                {
                                    l.Load.Handler = string.Format("if(successful){{ App.tipo_movimiento_id.setValue('{0}')}}", Model.tipo_movimiento_id);
                                })
                        ),
                    X.ComboBoxFor(m => m.grupo_movimiento_id)
                        .QueryMode(DataLoadMode.Remote)
                        .ForceSelection(true)
                        .DisplayField("nombre")
                        .ValueField("grupo_movimiento_id")
                        .EmptyText("Seleccione...")
                        .PageSize(10)
                        .MinChars(0)
                        .TriggerAction(TriggerAction.Query)
                        .ListConfig(
                            Html.X().BoundList()
                                .LoadingText("Buscando...")
                                .ItemTpl(
                                    Html.X().XTemplate()
                                        .Html(@<text>
                                        <div class="search-item">
                                            <h3>{codigo}</h3>
                                            {nombre}
                                        </div>
                                        </text>)
                                )
                        )
                        .Listeners(ls =>
                            ls.Select.Handler = @"App.subgrupo_movimiento_id.clearValue();
                                                  App.subgrupo_movimiento_id.getStore().load();"
                        )
                        .Store(
                            X.StoreFor(typeof(PcaCaja.BOL.oGrupoMovimiento))
                                .AutoLoad(true)
                                .Parameters(p =>
                                {
                                    p.Add(new StoreParameter() { Name = "tipoMovimientoId", Value = "App.tipo_movimiento_id.getValue()", Mode = ParameterMode.Raw });
                                    p.Add(new StoreParameter() { Name = "grupoId", Value = "App.grupoId.getValue()", Mode = ParameterMode.Raw });
                                })
                                .Proxy(
                                    X.AjaxProxy()
                                        .Url(Url.Action("GetAll", "GrupoMovimiento"))
                                        .Reader(X.JsonReader().RootProperty("data"))
                                )
                                .Listeners(l =>
                                {
                                    l.Load.Handler = string.Format("if(successful){{ App.grupo_movimiento_id.setValue('{0}'); App.grupoId.setValue('')}}", Model.grupo_movimiento_id);
                                })
                        ),
                    X.ComboBoxFor(m => m.subgrupo_movimiento_id)
                        .QueryMode(DataLoadMode.Remote)
                        .ForceSelection(true)
                        .DisplayField("nombre")
                        .ValueField("subgrupo_movimiento_id")
                        .EmptyText("Seleccione...")
                        .PageSize(10)
                        .MinChars(0)
                        .TriggerAction(TriggerAction.Query)
                        .ListConfig(
                            Html.X().BoundList()
                                .LoadingText("Buscando...")
                                .ItemTpl(
                                    Html.X().XTemplate()
                                        .Html(@<text>
                                        <div class="search-item">
                                            <h3>{codigo}</h3>
                                            {nombre}
                                        </div>
                                        </text>)
                                )
                        )
                        .Store(
                            X.StoreFor(typeof(PcaCaja.BOL.oSubGrupoMovimiento))
                                .AutoLoad(true)
                                .Parameters(p =>
                                {
                                    p.Add(new StoreParameter() { Name = "grupoMovimientoId", Value = "App.grupo_movimiento_id.getValue()", Mode = ParameterMode.Raw });
                                    p.Add(new StoreParameter() { Name = "subGrupoId", Value = "App.subGrupoId.getValue()", Mode = ParameterMode.Raw });
                                })
                                .Proxy(
                                    X.AjaxProxy()
                                        .Url(Url.Action("GetAll", "SubGrupoMovimiento"))
                                        .Reader(X.JsonReader().RootProperty("data"))
                                )
                                .Listeners(l =>
                                {
                                    l.Load.Handler = string.Format("if(successful){{ App.subgrupo_movimiento_id.setValue('{0}'); App.subGrupoId.setValue('')}}", Model.subgrupo_movimiento_id);
                                })
                        ),
                    X.TextFieldFor(m => m.detalle),
                    X.ComboBoxFor(m => m.moneda_id)
                        .QueryMode(DataLoadMode.Local)
                        .ForceSelection(true)
                        .DisplayField("nombre")
                        .ValueField("codigo")
                        .EmptyText("Seleccione...")
                        .Store(
                            X.StoreFor(typeof(PcaCore.BOL.Tablas.oVwTMoneda))
                                .AutoLoad(true)
                                .Proxy(
                                    X.AjaxProxy()
                                        .Url(Url.Action("GetAllMonedas", "Tablas", new { area = "" }))
                                        .Reader(X.JsonReader().RootProperty("data"))
                                )
                        ),
                    X.NumberFieldFor(m => m.monto)
                )
                .Buttons(
                    X.Button()
                        .Text("Actualizar")
                        .Icon(Icon.Disk)
                        .DirectEvents(de =>
                        {
                            de.Click.Url = Url.Action("Actualizar", "MovimientoDiario");
                            de.Click.Method = HttpMethod.POST;
                            de.Click.Before = "PcaGlobal.fnValidarForm";
                            de.Click.Success = @"App.GridMovimientoDiario.getSelectionModel().deselectAll();
                                                 App.storeMovimientoDiario.load();
                                                 App.winEditarMovimientoDiario.close();";
                            de.Click.Failure = "PcaGlobal.showError(result.msg);";
                            de.Click.EventMask.ShowMask = true;
                            de.Click.EventMask.Msg = "Registrando...";
                        })
                )
        )
        .Listeners(l =>
        {
            l.AfterRender.Handler = "App.fechaDiario.setReadOnly(true)";
            l.Close.Handler = "App.fechaDiario.setReadOnly(false)";
        })
)

